const numericChars = '0123456789';
const alphaChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

/**
 * 生成随机数字序列的方法
 * 
 * @param {*} length 长度
 * @returns 随机数字字符串
 */
export function generateRandomNumeric(length) {
  let result = '';

  // 生成指定长度的随机数字序列
  for (let i = 0; i < length; i++) {
    result += numericChars.charAt(Math.floor(Math.random() * numericChars.length));
  }
  return result;
}

/**
 * 生成随机字母序列的方法
 * 
 * @param {*} length 长度
 * @returns 随机字母字符串
 */
export function generateRandomAlpha(length) {
  let result = '';
  // 生成指定长度的随机字母序列
  for (let i = 0; i < length; i++) {
    result += alphaChars.charAt(Math.floor(Math.random() * alphaChars.length));
  }

  return result;
}

/**
 * 生成随机字母和数字序列的方法
 * 
 * @param {*} length 长度
 * @returns 随机数字字母字符串
 */
export function generateRandomAlphanumeric(length) {
  let result = '';
  const allChars = numericChars + alphaChars;

  // 生成指定长度的随机字母和数字序列
  for (let i = 0; i < length; i++) {
    result += allChars.charAt(Math.floor(Math.random() * allChars.length));
  }

  return result;
}

/**
 * 根据传递的值，生成区间内随机数字
 * 
 * @param {*} min 最小值
 * @param {*} max 最大值
 * @returns 随机数
 */
export function generateRandomNumber(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}